--[[
描述 ： UISplitItemView
作者 ： 付大志
时间 ： 13/08/08
]]
UISplitView = Class(MLView,'UISplitView');

UISplitView.titleView        = nil;
UISplitView.id     =  nil;         -- 唯一标识
UISplitView.viewCtrl = nil;     -- 所在viewctrl
UISplitView.navCtrl      = nil;     --当前导航ctrl
UISplitView.leftViewHeight = nil;
UISplitView.selectItem    = -1;
UISplitView.mContentRootView   =  nil;     --
UISplitView.mItemsRootView   =  nil;     --
UISplitView.mWidth =   nil;             -- 宽度
UISplitView.mHeight =  nil;            -- 高度
UISplitView.mContentCtrls   =  nil;
UISplitView.mSplitItemViews   =  nil;


--[[
功能   ： init UISplitView 控件
参数   ： width           --- 宽度
height          --- 高度
leftViewWidth   --- 左split
titileView      --- 左 split的title
viewCtrl        -
返回   ： UISplitView 实例
]]

function UISplitView:init(width, height, leftViewWidth,titleView, viewCtrl, id)
  width  = width or UITheme.SPLITVIEW_WIDTH;
  height = height or UITheme.SPLITVIEW_HEIGHT;

  self:initView(width, height, viewCtrl, id);

  self.titleView =titleView;
  self.mWidth =  width;
  self.mHeight = height;
  self.leftViewHeight = leftViewWidth;
  self.viewCtrl = viewCtrl;
  self.mContentRootView = MLView.new():initView(width-leftViewWidth, height,viewCtrl, id);
  --  self.mContentRootView:setBg(UIImage.imageName('detail_bg.png'));
  self.mContentRootView:setColor(0xffffff);
  self.mItemsRootView = MLView.new():initView(leftViewWidth, height,viewCtrl, id);

  self:add(self.mContentRootView,leftViewWidth,0);
  self:add(self.mItemsRootView,0,  0);

  return self;
end

function UISplitView:setViewCtrls(...)
  self.mContentCtrls = arg;
-- 有待实践考证
-- g给子viewcontrl添加导航功能
-- for i,v in ipairs(arg) do
--       v.NavCtrl = self.rootViewCtrl.NavCtrl;
-- end
end

-- 目前支持等分
-- function UISplitView:setBarItemView(...)
--   self.mSplitItemViews = arg;
--   print('-------------arg=', arg, App.json(arg));
--   local num = #self.mSplitItemViews;
--   local x= 0;
--   local y = 0;

--   if self.titleView  then
--     self.mItemsRootView:add(self.titleView,0, y);
--     x,y = self.titleView:getWH();
--   end

--   for i,v in ipairs(self.mSplitItemViews) do
--     v.tag = i;
--     v.onClick = function ()
--       self:setSelTabBarView(i);  -- 改变tabBbar状态
--       self.time = Timer.new():initTimer();
--       self.time.onTimer = function ()
--           self:setSelItem(i);
-- 	  end
-- 	  self.time:start(10,false);

--     end
--     self.mItemsRootView:add(v,0, y);
--     y = y + v.mHeight;
--   end
--   local  width = 0;
--   for i,v in ipairs(arg) do
--     width = v.mWidth  + width;
--   end
--   if width > self.mWidth then
--   else
--   end
-- end

function UISplitView:setBarItemView( item )
  self.mSplitItemViews = item;
  -- print('-------------arg=', item, App.json(item));
  local num = #self.mSplitItemViews;
  local x= 0;
  local y = 0;

  if self.titleView  then
    self.mItemsRootView:add(self.titleView,0, y);
    x,y = self.titleView:getWH();
  end

  for i,v in ipairs(self.mSplitItemViews) do
    v.tag = i;
    v.onClick = function ()
      self:setSelTabBarView(i);  -- 改变tabBbar状态
      self.time = MLTimer.new():initTimer(self);
      self.time.onTimer = function ()
        self:setSelItem(i);
      end
      self.time:start(10,false);

    end
    self.mItemsRootView:add(v,0, y);
    y = y + v.mHeight;
  end
  local  width = 0;
  for i,v in ipairs(item) do
    width = v.mWidth  + width;
  end
  if width > self.mWidth then
  else
  end
end

--[[
功能   ： 设置tab选中索引
参数   ： index   --- 选中索引
返回   ： 无
]]
function UISplitView:setSelItem(index)
  local num = #self.mContentCtrls;
  if  index > num then return end
  --   if  self.selectItem == index then return end
  local viewCtrl = self.mContentCtrls[index];
  --viewCtrl.rootView = self.mContentRootView;
  if  self.navCtrl then
    self.navCtrl:releas();
  end
  self.navCtrl  = NavCtrl.new();     -- 创建导航控制器
  self.navCtrl:init(self.mContentRootView);
  self.navCtrl:push(viewCtrl);
  --self:setSelTabBarView(index);  -- 改变tabBbar状态
  self.selectItem =  index;
end

--[[
功能   ： 得到当前选中的tabbar索引
参数   ： 无
返回   ： 无
]]
function UISplitView:getSelItem()
  return self.selectItem;
end

-----------------------------函数内部-----------------------------------------------------

--[[
功能   ： 设置选中第一个tabcard
参数   ： index   --- 选中索引
返回   ： 无
]]
function UISplitView:setSelTabBarView(index)

  local num = #self.mSplitItemViews;
  if  index > num then return end
  if  self.selectItem == index then return end

  for i,v in ipairs(self.mSplitItemViews) do
    if  i == index then
      v.isSel =true;
    else
      v.isSel =false;
    end
    v:show();
  end

end


--[[
功能   ： 显示控件
参数   ： 无
返回   ： 无
]]
function UISplitView:show()
  if self.selectItem == -1 then
    self:setSelTabBarView(1);  -- 改变tabBbar状态
    self:setSelItem(1)
  end
end

--[[
功能   ： 更新控件
参数   ： 无
返回   ： 无
]]
function UISplitView:update()
  self:show();
end


